package com.nuanshui.heatedloan.credit.facade;

import com.nuanshui.heatedloan.credit.form.CustomerBankCardInfoForm;
import com.nuanshui.heatedloan.credit.response.RiskResponse;
import com.nuanshui.heatedloan.credit.vo.CustomerBankCardInfoVO;

import java.util.List;

public interface CustomerBankCardInfoService {
	  /***
	   * 新增客户基本信息
	   * @param customerBankCardInfoForm
	   */
      RiskResponse saveCustomerBankCardInfo(CustomerBankCardInfoForm customerBankCardInfoForm);
    
    /***
     * 修改客户基本信息
     * @param customerBankCardInfoForm
     */
    void updateCustomerBankCardInfo(CustomerBankCardInfoForm customerBankCardInfoForm);
    
    /***
     * 查询客户信息
     * @param id
     * @return
     */
    CustomerBankCardInfoVO loadVO(String id);
    
    
    /***
     * 将卡的状态变为0
     * @param id
     */
    void deleteCustomerBankCardInfo(String id);

    /***
     * 根据用户id获取其绑定的卡
     * @param userId
     * @return
     */
    List<CustomerBankCardInfoVO> loadCustomerBankCardInfoVOByUserId(String userId);

    /***
     * 查询银行卡信息
     * @param customerBankCardInfoForm
     * @return
     */
    CustomerBankCardInfoVO loadVOByObject(CustomerBankCardInfoForm customerBankCardInfoForm);

    /**
     * 获取用户最新添加的银行卡
     * @param userId
     * @return
     */
    CustomerBankCardInfoVO loadLatestVOByUserId(String userId);

    /**
     * 获取用户所绑定银行卡数量
     * @param userId
     * @return
     */
    int loadCountByUserId(String userId);

    /**
     * 通过用户id和银行卡号查询
     * @param userId
     * @param mixCardNo
     * @return
     */
    CustomerBankCardInfoVO loadVOByUserIdAndMixCardNo(String userId, String mixCardNo);


    /**
     * /**
     * 通过银行卡号查询
     * @param
     * @param mixCardNo
     * @return
     */
    CustomerBankCardInfoVO loadVOByMixCardNo(String mixCardNo);
}
